package com.banyuan.lesson.ExtendDemo;
/*
* 不要为了代码的复用去滥用继承；
* 在确定子类和父类的关系是is-a,才用继承；
* 少用is-a的继承，多用has-a的合成关系；
* 子类的构造器必须要调用父类的构造器；
*
* 类的默认行为：
* 1、如果一个类没有定义构造器，编译器会自动生成一个无参构造器；
* 2、子类的构造器会默认调用父类的无参构造器；
*
* 子类不是继承父类的构造器，是调用父类的构造器，是super（）；
* this是一个引用，super不是引用，只是一个工具；
* */
public class ExtendClass1 {
    public static void main(String[] args) {
//        System.out.println(Zi.j);

        Zi z = new Zi();
//        先找到子类，在找到父类 ，再创建父对象，再创建子对象；
//        先是父类的静态初始化块，接着子类的静态初始化；
//        父类创建对象，父类非静态初始化和构造器；
//        子类创建对象，子类非静态初始化和构造器；
    }

}
